classdef frameseq < handle
    % The base class of objects representing a sequence of frames
    %
    
    %% properties
    
    properties(GetAccess='public', SetAccess='protected')
        
        height;     % the height of each frame (#rows)
        width;      % the width of each frame (#columns)
        pixelfmt;   % the format of pixels ('gray' or 'rgb')
        
        nframes;    % the number of frames in the sequence
    end
    
    %% methods
    
    methods(Abstract)
        
        F = frame(seq, i);
        % Get one frame from the sequence (given the index)
        
        Fs = frames(seq, indices);
        % Get multiple frames and return them as a cell array
        %
        %   Fs = seq.frames();
        %       returns a cell array containing all frames
        %
        %   Fs = seq.frames(indices);
        %       returns a cell array containing all frames with
        %       specified indices
        %
        
    end
        
    
end